<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../vue.js'></script>
</head>

<body>
    <div id='app'>


    </div>
    <script>
        Vue.config.productionTip = false;
        const MyCount = Vue.extend({
            name: 'Count',
            data() {
                return {
                    count: 1
                }
            },
            template: `
            <div>
            <h1>{{count}}</h1>
            <button @click="count++">累加</button>
            </div>
            `
        })

        console.log(MyCount,'MyCount');
        console.log(new MyCount(),'new MyCount');

        /* 
        使用Vue.extend方法 返回一个VueComponent构造函数
        当组件被使用的时候,会把当前的VueComponent实例化,得到一个组件实例

        注意:
            1.每次创建一个组件 都会得到一个不同的VueCompent构造函数
            2.每次使用同一个组件,都会生成不同的组件实例
        */
        const Person = Vue.extend({
            name: 'Person',
            data() {
                return {
                    name: 'laowang',
                    age: 18
                }
            },
            template: '<span>{{age}}</span>'
        })

        const vm = new Vue({
            el: '#app',
            components: {
                MyCount: MyCount,
                Person
            },
            data() {
                return {

                }
            },
            template: `
            <div>
                <h1>请看Count组件的表演</h1>
                <hr>
                <My-Count />
                <My-Count />
                <My-Count />
                <My-Count />
                <Person/>
                <Person/>
                <Person/>
            </div>
            `
        })
    </script>
</body>

</html>